package java8.future;

import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import org.junit.Test;

import java.util.List;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;

import static java8.future.CompletableFuntureInAction01.*;

/**
 * @program JavaBase
 * @description:
 * @author: zhanglu
 * @create: 2020-03-02 08:05:00
 */
public class CompletableFuntureInAction02 {

//    public static void main(String[] args) throws InterruptedException {
//
////        AtomicBoolean finished = new AtomicBoolean(false);
////
////        CompletableFuture.supplyAsync(CompletableFuntureInAction01::get)
////        .whenComplete((v, t) -> {
////            Optional.ofNullable(v).ifPresent(System.out::println);
////            Optional.ofNullable(t).ifPresent(e -> e.printStackTrace());
////            finished.set(true);
////        });
////        System.out.println("---");
////        while (!finished.get()){
////            Thread.sleep(1);
////        }
//
//        //将线程池设置为守护线程，这样，程序不用主动调关闭方法，也可以退出
//        ExecutorService service = Executors.newFixedThreadPool(2, r -> {
//            Thread thread = new Thread(r);
//            thread.setDaemon(true);
//            return thread;
//        });
//        service.execute(() -> System.out.println("test..."));
//
//
//    }


    public static void main(String[] args) {
        String s = "[\"YK66666322620244202\",\"YK66666322620244201\",\"YK66666322620244200\",\"YK66666322620244199\",\"YK66666322620244198\",\"YK66666322620244197\",\"YK66666322620244196\",\"YK66666322620244195\",\"YK66666322620244194\",\"YK66666322620244193\",\"YK66666322620244192\",\"YK66666322620244191\",\"YK66666322620244190\",\"YK66666322620244189\",\"YK66666322620244188\",\"YK66666322620244187\",\"YK66666322620244186\",\"YK66666322620244185\",\"YK66666322620244184\",\"YK66666322620244183\",\"YK66666322620244182\",\"YK66666322620244181\",\"YK66666322620244180\",\"YK66666322620244179\",\"YK66666322620244178\",\"YK66666322620244177\",\"YK66666322620244175\",\"YK66666322620244174\",\"YK66666322620244172\",\"YK66666322620244171\",\"YK66666322620244170\",\"YK66666322620244169\",\"YK66666322620244167\",\"YK66666322620244163\",\"YK66666322620244162\",\"YK66666322620244161\",\"YK66666322620244159\",\"YK66666322620244157\",\"YK66666322620244155\",\"YK66666322620244154\",\"YK66666322620244152\",\"YK66666322620244150\",\"YK66666322620244146\",\"YK66666322620244144\",\"YK66666322620244143\",\"YK66666322620244139\",\"YK66666322620244137\",\"YK66666322620244135\",\"YK66666322620244134\",\"YK66666322620244133\",\"YK66666322620244132\",\"YK66666322620244131\",\"YK66666322620244118\",\"YK66666322620244116\",\"YK66666322620244115\",\"YK66666322620244114\",\"YK66666322620244113\",\"YK66666322620244104\",\"YK66666322620244102\",\"YK66666322620244100\",\"YK66666322620244096\",\"YK66666322620244093\",\"YK66666322620244085\",\"YK66666322620244082\",\"YK66666322620244080\",\"YK66666322620244077\",\"YK66666322620244074\",\"YK66666322620244061\",\"YK66666322620244053\",\"YK66666322620244052\",\"YK66666322620244040\",\"YK66666322620244034\",\"YK66666322620244029\",\"YK66666322620244018\",\"YK66666322620244017\",\"YK66666322620244014\",\"YK66666322620244002\",\"YK66666322620243989\",\"YK66666322620243987\",\"YK66666322620243985\",\"YK66666322620243984\",\"YK66666322620243973\",\"YK66666322620243970\",\"YK66666322620243964\",\"YK66666322620243949\",\"YK66666322620243947\",\"YK66666322620243944\",\"YK66666322620243940\",\"YK66666322620243938\",\"YK66666322620243937\",\"YK66666322620243931\"]";
        List<Object> collect = JSONUtil.parseArray(s).stream().map(o -> "" + o.toString() + "").collect(Collectors.toList());
        System.out.println(StrUtil.join(" or ", collect));
    }

}
